//package com.southwind.controller;
//
//import org.springframework.web.bind.annotation.*;
//import com.alibaba.fastjson.JSONObject;
//
//@RestController
//public class WechatController {
//
//    @PostMapping("/api/wechatLogin")
//    public JSONObject wechatLogin(@RequestParam String code) {
//        // 1. 通过code获取openid和session_key
//        JSONObject wxResp = WechatUtil.getOpenId(code);
//        String openid = wxResp.getStr("openid");
//        String sessionKey = wxResp.getStr("session_key");
//
//        // 2. 查询或创建用户
//        AppUser user = appUserRepository.findByOpenid(openid); // 假设存在Repository
//        if (user == null) {
//            user = new AppUser();
//            user.setOpenid(openid);
//            user.setSessionKey(sessionKey);
//            appUserRepository.save(user);
//        } else {
//            user.setSessionKey(sessionKey); // 更新session_key
//            appUserRepository.save(user);
//        }
//
//        // 3. 生成Token（可选）
//        String token = JwtUtil.generateToken(openid); // 自行实现JWT生成逻辑
//
//        return new JSONObject()
//                .fluentPut("code", 200)
//                .fluentPut("data", new {
//            "openid": user.getOpenid(),
//                    "sessionKey": sessionKey,
//                    "phone": user.getPhone(),
//                    "nickname": user.getNickname(),
//                    "avatar": user.getAvatar(),
//                    "token": token
//        });
//    }
//
//    @PostMapping("/api/decodePhone")
//    public JSONObject decodePhone(
//            @RequestParam String encryptedData,
//            @RequestParam String iv,
//            @RequestParam String openid) {
//
//        AppUser user = appUserRepository.findByOpenid(openid);
//        if (user == null) {
//            return new JSONObject().fluentPut("code", 400).fluentPut("msg", "用户不存在");
//        }
//
//        // 4. 解密手机号
//        String phone = WechatUtil.decryptPhone(
//                user.getSessionKey(),
//                encryptedData,
//                iv
//        );
//
//        // 5. 更新用户手机号
//        user.setPhone(phone);
//        appUserRepository.save(user);
//
//        return new JSONObject()
//                .fluentPut("code", 200)
//                .fluentPut("phone", phone);
//    }
//}